/**
@author		Jong Min, Lee
@date		  01/19/2014
@brief		contains command IDs

copyright(c) Tae Young Soft. All right reserved. 2014
*/
#pragma once

#define   TV_CMD_GROUP_NONE_FIRST           0x00000000        
#define   TV_CMD_GROUP_NONE_LAST            (TV_CMD_GROUP_NONE_FIRST + 99)

#define   TV_CMD_GROUP_COMMON_FIRST         (TV_CMD_GROUP_NONE_LAST + 1)
#define   TV_CMD_GROUP_COMMON_LAST          (TV_CMD_GROUP_COMMON_FIRST + 99)

#define   TV_CMD_GROUP_ANNOTATION_FIRST     (TV_CMD_GROUP_COMMON_LAST + 1)
#define   TV_CMD_GROUP_ANNOTATION_LAST      (TV_CMD_GROUP_ANNOTATION_FIRST + 99)

#define   TV_CMD_GROUP_ORDINARY_FIRST       (TV_CMD_GROUP_ANNOTATION_LAST + 1)
#define   TV_CMD_GROUP_ORDINARY_LAST        (TV_CMD_GROUP_ORDINARY_FIRST + 99)

#define   TV_CMD_GROUP_MAMMO_FIRST          (TV_CMD_GROUP_ORDINARY_LAST + 1)
#define   TV_CMD_GROUP_MAMMO_LAST           (TV_CMD_GROUP_MAMMO_FIRST + 99)

#define   TV_CMD_GROUP_FMX_FIRST            (TV_CMD_GROUP_MAMMO_LAST + 1)
#define   TV_CMD_GROUP_FMX_LAST             (TV_CMD_GROUP_FMX_FIRST + 99)

#define   TV_CMD_GROUP_ETC_FIRST            (TV_CMD_GROUP_FMX_FIRST + 1)
#define   TV_CMD_GROUP_ETC_LAST             (TV_CMD_GROUP_ETC_FIRST + 99)

/**
@brief		command id for changing the mode of mouse whilie holding down left button to "Select" mode
@param		wParam this parameter is not used
@param    lParam this parameter is not used
@return		
*/
#define   TV_CMD_SELECTOR             (TV_CMD_GROUP_COMMON_FIRST + 0)

/**
@brief		command id for changing the mode of mouse while holding down left button to "Pan" mode
@param		wParam  this parameter is not used
@param    lParam  this parameter is not used
*/
#define   TV_CMD_CONT_PAN             (TV_CMD_GROUP_COMMON_FIRST + 1)

/**
@brief		command id for changing the mode of mouse while holding down left button to "Zoom" mode
@param		wParam not used
@param    lParam not used
*/
#define   TV_CMD_CONT_ZOOM            (TV_CMD_GROUP_COMMON_FIRST + 2)

/**
@brief		command id for changing the mode of mouse while holding down left button to "ROI Zoom" mode
@param		wParam not used
@param    lParam not used
*/
#define   TV_CMD_ROI_ZOOM             (TV_CMD_GROUP_COMMON_FIRST + 3) 

/**
@brief		command id for changing the mode of mouse while holding down left button to "Windowing" mode
@param		wParam not used
@param    lParam not used
*/
#define   TV_CMD_CONT_WWL             (TV_CMD_GROUP_COMMON_FIRST + 4) 

/**
@brief		command id for changing the mode of mouse while holding down left button to "ROI Auto Windowing" mode
@param		wParam not used
@param    lParam not used
*/
#define   TV_CMD_ROI_AUTO_WWL         (TV_CMD_GROUP_COMMON_FIRST + 5)

/**
@brief		command id for changing the mode of mouse while holding down left button to "Magnification" mode
@param		wParam not used
@param    lParam not used
*/
#define   TV_CMD_MAGNIFICATION        (TV_CMD_GROUP_COMMON_FIRST + 6)

/**
@breif    command id for changing the size of all selected images to fit image view
@param    wParam not used
@param    lParam not used
*/
#define   TV_CMD_FIT                  (TV_CMD_GROUP_COMMON_FIRST + 7)

/**
@brief		command id for flipping all of selected images horizontally 
@param		wParam not used
@return		lParam not used
*/
#define   TV_CMD_H_FLIP               (TV_CMD_GROUP_COMMON_FIRST + 8)

/**
@brief		command id for flipping all of selected images vertically 
@param		wParam not used
@param    lParam not used
*/
#define   TV_CMD_V_FLIP               (TV_CMD_GROUP_COMMON_FIRST + 9)


/**
@brief		command id for rotate clockwise all of selected images through 90 degrees
@param		wParam not used
@param    lParam not used
*/
#define   TV_CMD_ROTATE_C_90           (TV_CMD_GROUP_COMMON_FIRST + 10)

/**
@brief		command id for rotate counterclockwise all of selected images through 90 degrees 
@param		wParam not used
@param    lParam not used
*/
#define   TV_CMD_ROTATE_CC_90         (TV_CMD_GROUP_COMMON_FIRST + 11)

/**
@brief		command id for rotate all of selected images through 180 degrees
@param		wParam not used
@param    lParam not used
*/
#define   TV_CMD_ROTATE_180            (TV_CMD_GROUP_COMMON_FIRST + 12)

/**
@brief		command id for invert color of all selected images
@param		wParam not used
@param    lParam not used
@return		
*/
#define   TV_CMD_INVERT_COLOR         (TV_CMD_GROUP_COMMON_FIRST + 13)

/**
@breif    command id for selecting all images in study view box
@param    wParam not used
@param    lParam not used
*/
#define   TV_CMD_SELECT_ALL           (TV_CMD_GROUP_COMMON_FIRST + 14)

/**
@brief		command id for reversing the selection status of all images in study view box
@param		wParam not used
@param    lParam not used
*/
#define   TV_CMD_REVERSE_SELECT       (TV_CMD_GROUP_COMMON_FIRST + 15)

/**
@brief		command id for applying sharpen filter to all of selected images
@param		wParam  not used
@param    lParam  not used
*/
#define   TV_CMD_SHARPEN_FILTER       (TV_CMD_GROUP_COMMON_FIRST + 16)

/**
@brief		command id for applying average filter to all of selected images
@param		wParam  not used
@param    lParam  not used
*/
#define   TV_CMD_AVERAGE_FILTER       (TV_CMD_GROUP_COMMON_FIRST + 17)

/**
@brief		command id for popup pesudo color mapping dialog for all selected images
@param		wParam not used
@param    lParam not used
*/
#define   TV_CMD_PESUO_COLOR          (TV_CMD_GROUP_COMMON_FIRST + 18)

/**
@brief		command id for pop up print dialog
@param		wParam not used
@param    lParam not used
*/
#define   TV_CMD_PRINT                (TV_CMD_GROUP_COMMON_FIRST + 19)

/**
@brief		command id for dictation
@param		wParam not used
@param    lParam not used
*/
#define   TV_CMD_DICTATION            (TV_CMD_GROUP_COMMON_FIRST + 20)

/**
@brief		command id for playing dictation
@param		wParam not used
@param    lParam not used
*/
#define   TV_CMD_PLAY_DICTATION       (TV_CMD_GROUP_COMMON_FIRST + 21)

/**
@brief		command id for reseting changes to all selected images
@param		wParam not used
@param    lParam not used
*/
#define   TV_CMD_RESET                (TV_CMD_GROUP_COMMON_FIRST + 22)

/**
@brief		command id for refreshing activated study
@param		wParam not used
@param    lParam not used
*/
#define   TV_CMD_REFRESH_STUDY        (TV_CMD_GROUP_COMMON_FIRST + 23)

/**
@brief		command id for changing the mode of mouse while holding down left button to "Select key image"
@param		wParam not used
@param    lParam not used
*/
#define   TV_CMD_KEY_IMAGE            (TV_CMD_GROUP_COMMON_FIRST + 24)

/**
@brief		command id for pop up patient history dialog for focused study
@param		wParam not used
@param    lParam not used
*/
#define   TV_CMD_PATIENT_HISTORY      (TV_CMD_GROUP_COMMON_FIRST + 25)

/**
@brief		command id for copy focused image to clipboard
@param		wParam not used
@param    lParam not used
*/
#define   TV_CMD_COPY_IMG_CLIPBOARD   (TV_CMD_GROUP_COMMON_FIRST + 26)


/**
@brief		command id for close study
@param		wParam not used
@param    lParam not used
*/
#define   TV_CMD_CLOSE_STUDY         (TV_CMD_GROUP_COMMON_FIRST + 27) 

/**
@brief		command id for save changes to study
@param		wParam not used
@param    lParam not used
*/
#define   TV_CMD_SAVE_STUDY           (TV_CMD_GROUP_COMMON_FIRST + 28)    


/************************************************************************/
/* Annotation command ID                                                */
/************************************************************************/

/**
@brief		command id for change the mode of mouse while holding down left button to "Annotation - Line" mode
@param		wParam not used
@param    lParam not used
*/
#define   TV_CMD_ANNOTATION_LINE      (TV_CMD_GROUP_ANNOTATION_FIRST + 0)     

/**
@brief		command id for change the mode of mouse while holding down left button to "Annotataion - Arrow" mode
@param		wParam not used
@param    lParam not used
*/
#define   TV_CMD_ANNOTATION_ARROW     (TV_CMD_GROUP_ANNOTATION_FIRST + 1)  

/**
@brief		command id for change the mode of mouse while holding down left button to "Annotation - Text" mode
@param		wParam not used
@param    lParam not used
*/
#define   TV_CMD_ANNOTATION_TEXT      (TV_CMD_GROUP_ANNOTATION_FIRST + 2) 

/**
@brief		command id for changing the mode of mouse while holding down left button to "Annotation - Rectangle" mode
@param		wParam not used
@param    lParam not used
*/
#define   TV_CMD_ANNOTATION_RECT      (TV_CMD_GROUP_ANNOTATION_FIRST + 3) 

/**
@brief		command id for changing the mode of mouse while holding down left button to "Annotation - Circle" mode
@param		wParam not used
@param    lParam not used
*/
#define   TV_CMD_ANNOTATION_CIRCLE     (TV_CMD_GROUP_ANNOTATION_FIRST + 4) 

/**
@brief		command id for changing the mode of mouse while holding down left button to "Annotation - Ellipse" mode
@param		wParam not used
@param    lParam not used
*/
#define   TV_CMD_ANNOTATION_ELLIPSE    (TV_CMD_GROUP_ANNOTATION_FIRST + 5) 

/**
@brief		command id for changing the mode of mouse while holding down left button to "Annotation - Polygon" mode
@param		wParam  not used
@parm     lParam  not used
*/
#define   TV_CMD_ANNOTATION_POLYGON    (TV_CMD_GROUP_ANNOTATION_FIRST + 6)   

/**
@brief		command id for changing the mode of mouse while holding down left button to "Annotation - Curve" mode
@param		wParam not used
@param    lParam not used
*/
#define   TV_CMD_ANNOTATION_CURVE      (TV_CMD_GROUP_ANNOTATION_FIRST + 7) 

/**
@brief		command id for changing the mode of mouse while holding down left button to "Annotation - Free draw" mode
@param		wParam not used
@param    lParam not used
*/
#define   TV_CMD_ANNOTATION_FREE_DRAW  (TV_CMD_GROUP_ANNOTATION_FIRST + 8) 

/**
@brief		command id for changing the mode of mouse while holding down left button to "Annotation - Memo" mode
@param		wParam not used
@parm     lParam not used
*/
#define   TV_CMD_ANNOTATION_MEMO       (TV_CMD_GROUP_ANNOTATION_FIRST + 9) 

/**
@brief		command id for changing the mode of mouse while holding down left button to "Annotation - Marking" mode
@param		wParam  not used
@param    lParam  not used
*/
#define   TV_CMD_ANNOTATION_MARKING     (TV_CMD_GROUP_ANNOTATION_FIRST + 10)

/**
@brief		command id for changing the mode of mouse while holding down left button to "Measure - Ratio" mode
@param		wParam not used
@param    lParam not used
*/
#define   TV_CMD_MEASURE_RATIO          (TV_CMD_GROUP_ANNOTATION_FIRST + 11)

/**
@brief		command id for changing the mode of mouse while holding down left button to "Measure - Caliper" mode
@param		wParam not used
@param    lParam not used
*/
#define   TV_CMD_MEASURE_CALIPER        (TV_CMD_GROUP_ANNOTATION_FIRST + 12) 

/**
@brief		command id for changing the mode of mouse while holding down left button to "Measure - Angle" mode
@param		wParam not used
@param    lParam not used
*/
#define   TV_CMD_MEASURE_ANGLE          (TV_CMD_GROUP_ANNOTATION_FIRST + 13) 

/**
@brief		command id for changing the mode of mouse while holding down left button to "Measure - Cobb's angle" mode
@param		wParam not used
@param    lParam not used
*/
#define   TV_CMD_MEASURE_COBBS_ANLGE    (TV_CMD_GROUP_ANNOTATION_FIRST + 14)

/**
@brief		command id for changing the mode of mouse while hodling down left button to "Measure - CT Ratio"  mode
@param		wParam not used
@param    lParam not used
*/
#define   TV_CMD_MEASURE_CT_RATIO       (TV_CMD_GROUP_ANNOTATION_FIRST + 15)

/**
@brief		command id for changing the mode of mouse while holding down left button to "Measure - Limb LD" mode
@param		wParam not used
@param    lParam not used
*/
#define   TV_CMD_MEASURE_LIMB_LD        (TV_CMD_GROUP_ANNOTATION_FIRST + 16)

/**
@brief		command id for change the mode of mouse to "Measure - Lens" mode
@param		wParam not used
@param    lParam not used
*/
#define   TV_CMD_MEASURE_LENS           (TV_CMD_GROUP_ANNOTATION_FIRST + 11)

/**
@brief		command id for changing the mode of mouse to "Calibration" mode
@param		wParam not used
@param    lParam not used
*/
#define   TV_CMD_MEASURE_CALIBRATE      (TV_CMD_GROUP_ANNOTATION_FIRST + 12)

/**
@brief		command id for changing the mode of mouse while holding down to "Spine labeling" mode
@param		wParam not used
@param    lParam not used
*/
#define   TV_CMD_SPINE_LABELING           (TV_CMD_GROUP_ANNOTATION_FIRST + 13)

/**
@brief		command if for change mode of mouse while holding down left button to "ROI - Circle" mode
@param		
@return		
*/
#define   TV_CMD_ROI_CIRCLE             (TV_CMD_GROUP_ANNOTATION_FIRST + 14)

/**
@brief		command id for changing mode of mouse while holding down left button to "ROI - Ellipse" mode
@param		wParam not used
@param    lParam not used
*/
#define   TV_CMD_ROI_ELLIPSE            (TV_CMD_GROUP_ANNOTATION_FIRST + 15)

/**
@brief		command id for changing mode of mouse while holding down left button to "ROI - Rectangle" mode
@param		
@return		
*/
#define   TV_CMD_ROI_RECT               (TV_CMD_GROUP_ANNOTATION_FIRST + 16)

/**
@brief		command id for changing mode of mouse while holding down left button to "ROI - Polygon" mode
@param		wParam not used
@param    lParam not used
*/
#define   TV_CMD_ROI_POLYGON             (TV_CMD_GROUP_ANNOTATION_FIRST + 17)

/**
@brief		command for changing mode of mouse while holding down left button to "ROI - Curve" mode
@param		wParam not used
@param    lParam not used
*/
#define   TV_CMD_ROI_CURVE               (TV_CMD_GROUP_ANNOTATION_FIRST + 18)

/**
@brief		command for changing mode of mouse while holding down left button to "ROI - Free draw" mode
@param		wParam not used
@param    lParam not used
*/
#define   TV_CMD_ROI_FREE_DRAW           (TV_CMD_GROUP_ANNOTATION_FIRST + 19)

/**
@brief		command for changing mode of mouse while holding down left buton to "Shutter - Circle" mode
@param		wParam not used
@param    lParam not used
*/
#define   TV_CMD_SHUTTER_CIRCLE          (TV_CMD_GROUP_ANNOTATION_FIRST + 20)


/**
@brief		command for changing mode of mouse while holding down left buton to "Shutter - Ellipse" mode
@param		wParam not used
@param    lParam not used
*/
#define   TV_CMD_SHUTTER_ELLIPSE          (TV_CMD_GROUP_ANNOTATION_FIRST + 21)

/**
@brief		command for changing mode of mouse while holding down left buton to "Shutter - Polygon" mode
@param		wParam not used
@param    lParam not used
*/
#define   TV_CMD_SHUTTER_POLYGON          (TV_CMD_GROUP_ANNOTATION_FIRST + 22)

/**
@brief		command for changing mode of mouse while holding down left buton to "Shutter - Rectangle" mode
@param		wParam not used
@param    lParam not used
*/
#define   TV_CMD_SHUTTER_RECT             (TV_CMD_GROUP_ANNOTATION_FIRST + 23)

/**
@brief		command for changing mode of mouse while holding down left buton to "Shutter - Curve" mode
@param		wParam not used
@param    lParam not used
*/
#define   TV_CMD_SHUTTER_CURVE            (TV_CMD_GROUP_ANNOTATION_FIRST + 24)

/**
@brief		command for changing mode of mouse while holding down left buton to "Shutter - Free draw" mode
@param		wParam not used
@param    lParam not used
*/
#define   TV_CMD_SHUTTER_FREE_DRAW        (TV_CMD_GROUP_ANNOTATION_FIRST + 25)

/************************************************************************/
/* Ordinary series view command                                         */
/************************************************************************/

/**
@brief		command for activate or deactive cross link mode
@param    wParam not used
@param    lParam not used
*/
#define   TV_CMD_CROSS_LINK               (TV_CMD_GROUP_ORDINARY_FIRST +  0)

/**
@brief		command for scout image
@param		wParam not used
@param    lParam not used
*/
#define   TV_CMD_SCOUT_IMAGE              (TV_CMD_GROUP_ORDINARY_FIRST + 1)

/**
@brief		command for 3d cursor
@param		wParam not used
@param    lParam not used
*/
#define   TV_CMD_3D_CURSOR                 (TV_CMD_GROUP_ORDINARY_FIRST + 2)

/**
@brief		command for cut
@param		wParam not used
@param    lParam not used
*/
#define   TV_CMD_CUT_IMAGES                 (TV_CMD_GROUP_ORDINARY_FIRST + 3)

/**
@brief		commnad for paste images forward
@param		wParam not used
@param    lParam not used
*/
#define   TV_CMD_PASTE_FORWARD              (TV_CMD_GROUP_ORDINARY_FIRST + 4)

/**
@brief		command for paste image backward
@param		wParam not used
@param    lParam not used
*/
#define   TV_CMD_PASTE_BACKWARD             (TV_CMD_GROUP_ORDINARY_FIRST + 5)


/************************************************************************/
/* ETC Commands                                                         */
/************************************************************************/
/**
@brief		command id for changing the mode of mouse while holding down lef button to "View DICOM header" mode
@param		wParam not used
@param    lParam not used
*/
#define   TV_CMD_VIEW_DICOM_HEADER          (TV_CMD_GROUP_ETC_FIRST + 0) 

/**
@brief		command for popping up setting dialog
*/
#define   TV_CMD_SETTING                    (TV_CMD_GROUP_ETC_FIRST + 1)

/**
@brief		command for popping up about dialog
*/
#define   TV_CMD_ABOUT                      (TV_CMD_GROUP_ETC_FIRST + 2)


